home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Medal Software 3
/
Gold Medal Software - Volume 3 (Gold Medal) (1994).iso
/
os2
/
joevw122.arj
/
JOEVIEW.HLP
(
.txt
)
< prev
next >
Wrap
OS/2 Help File
|
1994-01-18
|
87KB
|
2,205 lines
ΓòÉΓòÉΓòÉ 1. General Help ΓòÉΓòÉΓòÉ
JoeView is an attempt at an image viewer for a variety of image formats. Help
is available at almost any time. I have implemented some unusual ways of
viewing images. It is probably worth your while to look through the section on
Viewing Strategies at this time.
ΓòÉΓòÉΓòÉ 2. Main Menu ΓòÉΓòÉΓòÉ
The main menu system is accessed by single clicking the right mouse button or
by using the system menu. You probably figured this out by now.
ΓòÉΓòÉΓòÉ 2.1. Misc. ΓòÉΓòÉΓòÉ
This menu command leads to three possible submenus.
Quit command will close JoeView, if you couldn't figure that out, try typing
"del \*.*" sometime.
Toggle Title Bar will turn on and off the main title bar. Note that you can
NOT MINIMIZE JoeView when the Title Bar is off.
Save Window Positions will store the current window locations of JoeView. This
includes the File Open Dialog and the Information Dialog.
ΓòÉΓòÉΓòÉ 2.2. Files ΓòÉΓòÉΓòÉ
This menu command does nothing by itself except bring up a second pull down
menu which has commands generally relating to file stuff. Slide Show. Open a
file. Save a file, etc. The actual commands are:
o Open
o Save
o SlideShow
o Print
o Iconify
o UnIconify
o Plumbing
ΓòÉΓòÉΓòÉ 2.2.1. Open File Dialog ΓòÉΓòÉΓòÉ
This dialog is one of the better features of JoeView and I am especially proud
of it (Send Money!). The dialog runs independently of the main window. You
can select a new file at any time unless JoeView prevents it, and generally you
will only be prevented from opening a file if JoeView is already trying to open
a file or you are running a SlideShow.
Note: The JPEG libraries use global variables that can interfere with each
other if trying to read and write JPEG style files at the same time. If you
begin saving a file in the JPEG format and immediately try and read a JPEG
format file, JoeView will hold the read operation (and promote the priority of
the write operation) until the write is finished. This should be fairly
transparent to you.
File Mask In the Options Menu you can decide what you would like the default
setting for this to be. You can change the value in this entry field at any
time but the change will stay only while the current JoeView session is active.
Typically you would just enter *.* or *.bmp here. You can also use *.bmp;*.gif
to select multiple file extensions. If you want you could also type in the
name of a file or the full name ala c:\file\my.bmp. Further, you can change to
a new directory fairly quickly by using c:\files\go_here\*.* - This would
change to the approprate drive and directory and also set the File Mask to *.*.
General Idea Consider this info for the GUI impaired. A file can be selected
by typing the file name into the File Mask entry field or by double clicking on
the appropriate file in the Files list box. Directories are changed by double
clicking in the directory listbox, using the Quick Dir or by using the H Dir
(feature discussed below). Drives are changed using the pull down listbox. The
file mask entry field is where, in addition to simply typing a file name, you
may enter wild cards, like *.gif or multiple wild cards separated by a ; or ,
for example *.gi*;*.bmp;*.tga (no spaces)! A list of only those files that
match the mask will be shown in the files list box. Files can be shown in
either alphabetical or dated format by selecting the appropriate button.
Confirm on delete does what it says. If you try and delete a file , it will
prompt you first. Turn it off and delete will just kill the file when you hit
the Delete button. BEWARE!!! The file deleted is the file shown in the current
file area (at the upper left side of the dialog) not necessarily the file
currently being viewed. If you only single click on a file in the files list
box it will be selected as the current file even though you are not looking at
it yet. Why does this feature exist? Often a series of images are less than
desirable to me, so the ability to cream'em all at once is useful. Just leave
the Confirm on Delete attribute on if your not sure, you will always be
prompted.
Browse Mode keeps the dialog open when not in use. This is useful if you are
going to look at a variety of files and don't want to keep opening the dialog
each time. There is a memory penalty for doing so which is proportional to the
size of the directory being viewed. When Browse Mode is active, hitting Cancel
has features discussed below. When Browse Mode is off hitting Cancel will close
the Open File dialog. Most often it will be faster just to minimize the Open
File Dialog.
Cancel When Browse Mode is not checked this will just dismiss the Open File
Dialog. When Browse Mode is active, Cancel will have two possible effects. If
an image is currently being loaded, Cancel will stop the file read and load the
default JoeView image. If an image is not being loaded, Cancel will cause the
main window to rise to the top (become active).
H File is an historical listing of all directories you have visited in the
current JoeView session. If you have gone to several directories and will go
back to them, use this listbox and save yourself some keystrokes (or mouse
clicks).
Low Priority Open will cause the selected file to be read in at low priority,
giving other processes more the CPU. This option gets applied even while a
file is currently being read. So, you can change the priority of a file read
by toggling this switch. See the discussion about Low Priority Threads in the
table of contents.
There are two buttons on the lower left side of the dialog box labeled N and P.
These buttons will cause the file either next or previous relative to the
currently highlighted file to be opened. Both will cycle to either the
beginning or end of the list when going off the end. They have accelerator
keys associated with them.
JoeView will attempt to read files that other applications are currently
writing. For most file types, JoeView can handle truncated images and so there
will not be a problem. Generally speaking a certain minimum (header info) is
needed. Usually there will not be a problem, but you never know. Currently
JPEGS cannot be accessed while other applications are writing to that file.
One last item is the Quick Dir listbox. Go back on click on Quick Dir for the
description.
ΓòÉΓòÉΓòÉ 2.2.2. Saving an Image ΓòÉΓòÉΓòÉ
The File Save dialog is pretty simple but deserves some explanation. The Quick
Dir listbox needs some detailed explanation that can be accessed by clicking on
Quick Dir. Drive, directory, and files are listings or displays of what is
currently available. You can enter any valid directory/path combo in the Save
as: entry box. The file listing is for information purposes mostly, but if you
do click on the file it will become the entry in the Save as: box. If you
double click on a file listbox entry, that will an indication that you want to
save the current image into that file.
CAUTION:
Be sure to indicate a file type before you double click on a file.
When you select a file type, that appropriate extension is added to or changed
for the text in the Save as: entry field.
File types available are:
o GIF
o JPEG
o OS2 BMP (RLE & uncompressed)
o Windoze BMP (RLE & uncompressed)
o PBM (raw and ASCII)
o X11 BMP
o Sun Raster
o TARGA (RLE & uncompressed)
o TIFF
o PCX
All are pretty self explanatory, but it should be noted that for Windows and
OS2 bitmaps both regular and RLE formats are written. RLE formats will do
little good on real life images with more than 16 colors.
There are three options located at the bottom of the dialog. Save at displayed
size will write the image at whatever resolution the image is currently being
displayed with. This is contrasted with the resolution that the image is
stored in memory as. See Viewing Strategies for details.
The second option is to Save at Low Priority. Since JoeView is multithreaded
you can save a file and while it is being written to disk, you can go ahead
(yippy!) and start load a different image. Low priority will write the current
file a little slower (in theory anyway) so that you (or other processes) can
use the CPU to do more important things, like loading/looking at another image.
(See the discussion about Low Priority in the table of contents). Only one
image can be saved at a time. The menu command to save an image will be
inaccessible until JoeView has finished saving the current file. During the
time an image is being saved the border of JoeView will turn red or blue
depending on whether JoeView is the active application. When the save is
complete, JoeView will return to its default border colors. In this way you
will know when a file save is complete. If you try and exit JoeView before a
save is finished, you will get a warning message and the option of finishing
the save before termination.
The third option is Iconify which will create an icon version of the image and
make it the icon for the file. This way you get an image that is just big
enough for you to get an idea of what the file is like. See the iconify
description for important details. When iconify is selected here, you do not
get to use a cropping rectangle to indicate what area of the image becomes the
icon, the whole image is used.
Colors The colors option will cause the image to be saved in the appropriate
number of indicated colors. The saved imaged is affected, but the current
image will remain unchanged.
ΓòÉΓòÉΓòÉ 2.2.3. Slide Show ΓòÉΓòÉΓòÉ
Slide Show is used to display a series of images, either a new image is
displayed after a certain amount of time or after a certain signal is given
(manual mode). There are three ways to start a slide show. One is to use the
Slide Show option. Two is to drag a JoeView slide show file onto JoeView or to
open such a file with the Open File dialog. Three is to drag and drop multiple
files onto JoeView.
The Drive listbox changes the current drive.
Quick Dir is explained elsewhere.
Directory is a listbox of the current directory. Selecting an item in this
listbox will cause a change to that directory.
Note: Selecting the current directory will deselect all the files highlighted
in the Files listbox.
The basic idea is to select a file that you want included in the display. You
can select a specific file by clicking on it in the File list box. You may
select multiple files at one time. A file is selected when it is highlighted.
Note: If you double click on a file, it is immediately selected into the
Selected Files listbox.
If you have mistakenly highlighted a file, clicking on it again will
de-highlight it. In addition to going after individual files in the Files
listbox, you may use any or all of the four buttons located above it. *.gif
will highlight all files that have the .gif extension. Similar for *.jpg while
*.* selects everything. The Mask-> button will take whatever you have entered
in the listbox to its right and use it for finding files. You DO NOT use wild
card symbols here (*, ?).
Example: Using .gif as the mask would highlight all files that have .gif in
them. This would include
JoeView.gif
myfile.old.gif
1.gif.jpg
Using t as the mask would select any file with a t in it.
Once you have highlighted a file, hitting the Add-> button will select it into
the Selected Files listbox. The files listed there are the ones that will be
used in the actual slide show.
If you have decided that you don't want to include a file that is listed in the
Selected Files listbox, highlight it and use the <-Remove button to eliminate
it.
Note: You can select multiple copies of the same file into the Selected Files
listbox.
The Start button will begin the slide show.
There are two additional buttons, Save and Load. These are for storing and
retrieving a SlideShow file selection. When a Slide Show file is saved, all
the files listed and the current Slide Show options are stored. The default
extension for the file created is .sls but any file name can be used. When
loading a file, all entries are placed into the selected listbox, including any
that are already there. The Slide Show options are updated to those that were
in the file if any existed. You can also start a Slide Show by selecting a
Slide Show file from the File Open Dialog or by dragging and dropping such a
file onto the JoeView icon or dragging and dropping multiple files onto
JoeView.
There are three options that can be selected without using the Options button.
They are: Timed vs Manual, and Loop. All three can be modified from the dialog
brought up by using the Options button. The Options button brings up a more
complete set of options than those displayed here. See SlideShow Options.
Be aware that you can modify your selected options even when SlideShow is
running by selecting Options off the Main Menu.
Once SlideShow begins, two additional options will appear on the Main Menu that
exist only when you are running SlideShow. One is Pause SlideShow and the
other is Stop SlideShow. Pause will temporarily halt the slide show, thus
freeing the CPU for other things. Once selected, this command will change to
Restart SlideShow.
Note: When JoeView is minimized the SlideShow will pause after the next image
has been read in.
Stop SlideShow will stop the slide show. The slide show will not stop in the
middle of reading a file, so if a file is currently being loaded, JoeView will
complete the load before ending the slide show.
Manual Mode: The next image is displayed when you double click with the left
mouse button on the current image or hit the N key.
Note: You can skip ahead to the next image in Timed mode by double clicking
with the left mouse button or hitting the N key.
ΓòÉΓòÉΓòÉ 2.2.3.1. SlideShow Options ΓòÉΓòÉΓòÉ
You can specify the Time interval between images being displayed. This field
is ignored if you select manual mode. The actual time interval is calculated
from the time the most recent image is displayed until the next image will
start to be read. Because of time it take to read an image, the actual
interval between image displays may be quite different than that requested.
There are four different ways of having the image displayed. The first two are
grouped with the ability to force them not to change their window size. The
fixed window size option does not affect the other two options. Both Keep True
Aspect Ratio and Aspect Ratio can Distort will resize up to the size of the
screen with each new file load unless Fixed Window Size is specified. Keep True
Aspect Ratio will always display the image in its correct height vs width
ratio. If Fixed Window Size is selected, the image may be padded with black
space on the sides or top and bottom as needed. Aspect Ratio can Distort will
resize the window to the correct size if Fixed Window Size if NOT selected.
Any subsequent resizes of the current image will force the image to fit inside
the window. If Fixed Window Size is selected, the image will always fit
exactly into the window.
The alternative two display options are size limited. Auto Resize with
Constant Width will always keep the image at the current width of the window,
small images will expand appropriately while large ones will shrink. The upper
left corner of the window is considered fixed, while the base is allowed to
float. In this way the window will resize (as far down as the bottom of the
screen) to keep the aspect ratio correct. If the correct aspect ratio cannot be
achieved because the image would be too large, the image width will be padded.
Auto Resize with Constant Height is similar except the height of the window
will not change. Again, the upper left corner is considered fixed and will not
be moved by JoeView. The window will expand to the far right side of the
screen if needed.
The Loop option will cause the slide show to begin over again once all the
images have been cycled through.
Randomize files will cause the slide show images to appear in a random order,
otherwise they appear in the order listed in the Selected Files listbox shown
in the SlideShow dialog.
Note: The file list is randomized but no effort is made to make sure all files
are shown when the list is gone through, nor is the same file prevented from
being shown multiple times. The only guarantee is that the correct number of
files will be shown during each cycle. (cycle = 1 if Loop is not selected).
You can also specify whether you want the Slide Show to run at low priority.
This way your other applications will not be as affected during a file read.
See the discusstion about Low Priority in the table of contents.
Any of these options can be changed while the SlideShow is running. Use the
Options command on the Main Menu once the slide show is started.
ΓòÉΓòÉΓòÉ 2.2.4. Printing ΓòÉΓòÉΓòÉ
So far printing has shown to be a hit and miss operation. Some images come out
OK, while others distort the colors. You may find that images will printout
better if you map the colors into the system colors first. On black and white
printers doing a black and white dither may yield better results and similarly,
you may want to convert your image to grayscale before printing.
Printing is not multi-threaded (so I'm lazy) so give it some time to complete.
The hard part about printing it to do so without distorting your image
inadvertently. This is where the Fixed radio buttons come in. Basically, you
choose what part of the picture will remain constant. Usually you will want to
make the image size constant, but thats up to you.
The Distortion of apect ratio tells you how much your image is being squished
because of the margins you have called for. Basically, 0 means that your image
will print true, while positive values indicate the sides are squished in,
while a negative value means the top is squished down.
You select a printer by clicking on the appropriate printer name shown in the
Printers listbox. Double clicking on the printer will allow you to edit its
defaults. In addition, you can check the EPS (Encapsulated Postscript)
checkbox. This will modify the Printing dialog box, allowing you to enter a
filename and also choose whether to use RLE encoding (compress) on the file and
or a preview section for the file created. The code to create an EPS file is
based on work by John Bradley of The University of Pennsylvania.
ΓòÉΓòÉΓòÉ 2.2.5. Iconify & UnIconify ΓòÉΓòÉΓòÉ
This little puppy allows you to associate a miniature version of your image or
part of your image with the image file. The icon is placed in the extended
attributes of the file and adds about 4K to the file length. Although the icon
will be displayable at any resolution, for all practical purposes only those
who are using a resolution of 1024x768 should use the option. Resolutions less
than this use icons which are 32x32 and just loose too much detail when
shrinking. Normally the entire image is used to make the icon, but if a
cropping rectangle is present only that part of the image will be used.
UnIconify will delete the icon information from the image file.
ΓòÉΓòÉΓòÉ 2.2.6. Pipe Me Baby ΓòÉΓòÉΓòÉ
This was a failed attempt to use named pipes to communicate with other
programs. Instead of using pipes it uses temporary files, and so in either case
the use is transparent to both you and the other program.
The option is designed to allow the user to access the programs bundled under
the PbmPlus logo. These utilities operate on PBM style files and do a wide
variety of operations. The utilities can be downloaded from many sources and
they are free (to my knowledge). It is your problem whether the utilities work
or not. The program does not have to be any of these utilities, any program
that takes a PBM style file in and outputs a PBM style file will work. The
program can use Stdio for file manipulation.
Defined Pipes: JoeView stores previously defined pipes (programs) in a file
called joeview.pip which is stored in the same directory as your exe file.
This is a list of the contents of the file. It is saved using the Save button.
Save Button: Saves whatever is listed in the Defined Pipes list box into the
joeview.pip file.
Delete Button: Deletes whatever item is selected in the Defined Pipes list
box.
Select Button: Copies whatever item is selected in the Defined Pipes list box
into the Pipe to Run list box.
Run Button: Runs whatever file is listed in the Pipe to Run entry field.
PPM, PGM, PBM, Raw specify what type of PBM format file to input into pipe.
Pipe to Run is the program to run and its arguments. The program must be the
full file name and extension, i.e. c:\os2\pgmoil.exe. In addition, any command
line options should be listed here as well. If you want to pass file names
(input or output) as arguments to the program use $in and $out as holders for
those arguments. For example, if your program needs both an input and output
file specified on the command line use:
c:\os2\pgmoil.exe $in $out
JoeView would replace $in and $out with the appropriate temporary files. If
your program uses Stdio, just leave out either $in and/or $out as appropriate.
The program will appear in a cropped window in the lower left corner of your
screen while it is running. BTW, the temp files will be located in your the
directory defined by TEMP or TMP and the files will have the format
joepipe.(three random letters). If you shut down JoeView in the middle of
something these files might remain. You should check periodically and delete
any that exist.
ΓòÉΓòÉΓòÉ 2.3. Edit ΓòÉΓòÉΓòÉ
The commands listed under this heading will typically permanently change your
image, with the exception of Copying to the Clipboard (Copy...).
ΓòÉΓòÉΓòÉ 2.3.1. Copy and Paste ΓòÉΓòÉΓòÉ
The pathway to the copy and paste command.
ΓòÉΓòÉΓòÉ 2.3.1.1. Copy... ΓòÉΓòÉΓòÉ
Copy to the clipboard. The image will be copied to the system's clipboard.
You will be asked whether you want to copy the image's palette also. Some
applications don't look for a palette and so the image will get really
distorted if you tell JoeView to include the palette. If you don't copy in a
palette, JoeView will convert the image to the system colors using Distance
Method. The system colors are pretty blah so if you want the copied image to
be really good, convert it to the system's palette first by using FS Dither
before the copy.
If a cropping rectangle is present, only the image inside the cropping
rectangle gets copied.
ΓòÉΓòÉΓòÉ 2.3.1.2. Paste ΓòÉΓòÉΓòÉ
Paste from the clipboard. Whatever image JoeView is currently displaying will
be lost.
ΓòÉΓòÉΓòÉ 2.3.1.3. Paste Into From Clipboard (or File) ΓòÉΓòÉΓòÉ
This feature allows you to paste whatever is currently in clipboard into
whatever image currently is being displayed by JoeView. A locating rectangle
is used to allow you to position the clipboard image to the spot that you want
it. The clipboard image must be smaller dimensionally than the image currently
being viewed in JoeView. You can resize the clipboard image to be whatever
size you want, but you cannot change the aspect ratio.
The alternate form of this command is to paste directly from another file.
This has the advantage of not being limited by the clipboard's color palette.
Both of these command operate the same, with the exception that Pasting from a
file first requires you to specify a file.
ΓòÉΓòÉΓòÉ 2.3.2. Colors ΓòÉΓòÉΓòÉ
Color crunching stuff. Toto, this doesn't look like Kansas!
ΓòÉΓòÉΓòÉ 2.3.2.1. Control Center ΓòÉΓòÉΓòÉ
This is where the action takes place for color manipulations. Many of the
manipulations that can be executed here can also be launched from the menu
system or via hot-keys, but everything accessed via this dialog can be undone.
Basically you have two ways of manipulating the image's colors in the broadest
sense, by changing the Red Green and Blue (RGB) components of the image's
colors and by changing the Hue Saturation and Value (intensity) or HSV of the
image. The method of manipulation is chosen by the radio button HSV or RGB.
The values of RGB and HSV are stored separately so the values in one set of
spin buttons will not correspond to the other set.
The Dynamic check box will cause the changes you are making to the various
sliders to be applied as you make the changes. If you do not have the dynamic
box checked, you will need to hit the Test button to see the effects of your
changes. Dynamic can be sluggish, but that's why you bought a Pentium right?
The Forget It is equivalent to cancel and will restore the image to its
original state before closing the dialog. Make it So applies the changes
permanently to the image. And just for your information, yes I do watch ST:TNG
and I'm proud damn it, proud I say, to do so!
Reset will reset the image to its original state.
Other manipulations can be run from here by selecting the appropriate button.
They are
o Grayscale
o Reduce Colors
o BW Dither
o FS Dither
o Distance Method
o Smooth
ΓòÉΓòÉΓòÉ 2.3.2.2. Brighten ΓòÉΓòÉΓòÉ
Colors are all shifted up to brighter colors. Will eventually turn entire
image white. If you shift colors repeatedly (all white in the extreme) you
will not be able to undo using the Darken feature. This is accessed via the
hot-key "B".
ΓòÉΓòÉΓòÉ 2.3.2.3. Darken ΓòÉΓòÉΓòÉ
Colors are all shifted down to darker colors. Will eventually turn entire
image black. Can be undone with Brighten if not taken too far. This is
accessed via the hot-key "D".
ΓòÉΓòÉΓòÉ 2.3.2.4. BW Dither ΓòÉΓòÉΓòÉ
Turns current image into a black and white image.
ΓòÉΓòÉΓòÉ 2.3.2.5. Reduce Colors ΓòÉΓòÉΓòÉ
You specify the number of colors you want the image to have. Numbers greater
than the current number of colors the image uses will do nothing and values
less than 2 are not allowed. This function is usually fast but can be a little
time consuming with large pictures.
ΓòÉΓòÉΓòÉ 2.3.2.6. Go Grayhound ΓòÉΓòÉΓòÉ
Converts the colors used in the image to grayscale.
ΓòÉΓòÉΓòÉ 2.3.2.7. System Colors ΓòÉΓòÉΓòÉ
There are two different ways of converting from the image's current color
scheme to that used by your OS2 system. They are Floyd Steinberg Dithering (FS
Dither) and the Distance Method.
ΓòÉΓòÉΓòÉ 2.3.2.7.1. FS Dither ΓòÉΓòÉΓòÉ
Floyd Steinberg Dithering of your image into the system's palette. The
dithering method is based on ppmquant.c by Jef Poskanzer. This produces
incredible results, sometimes it is hard to distinguish your original image
from the dithered. Of course the penalty is that it is EXTREMELY CPU
intensive. A VGA size image takes several minutes on my 33Mhz 486, your
mileage may vary. The results are much better than using the Distance Method.
Note that the CPU load is reduced to almost nothing if you bothered to create
the JoeView.dth file. This file preloads most of the calculations and makes
the whole thing fly. This file is created automatically whenever JoeView needs
to create the JoeView.pal file.
This option is useful when copying to the clipboard or creating wallpaper or
lockup screen images.
ΓòÉΓòÉΓòÉ 2.3.2.7.2. Distance Method ΓòÉΓòÉΓòÉ
Converts your image's palette into the system's default palette. Much faster
than FS Dither but noticeably lower quality.
This option is useful when copying to the clipboard or creating wallpaper or
lockup screen images.
ΓòÉΓòÉΓòÉ 2.3.3. Resize ΓòÉΓòÉΓòÉ
Resizing changes the resolution of the image (in memory). This will effect
that actual image, not just the displayed image. See Viewing Strategies for
more information. Remember that how you have specified that the image be
displayed may make it appear that this operation has done nothing when it
actually has. For example, you may have the window size fixed.
You can do +-10% increments or size the image to fit a particular screen size,
such as 640 x 480, 800 x 600, and 1024 x 768 or the resolution that the image
is currently being displayed at. In addition you can specify the actual
dimensions to use by using the Custom command.
ΓòÉΓòÉΓòÉ 2.3.4. Cropping ΓòÉΓòÉΓòÉ
Using the left mouse button, select an area of the image which you wish to
retain. Using crop will eliminate all area's outside the indicated rectangle.
The change affects the image, unlike Zoom.
You must be aware that the image may be being displayed with padded sides.
The padded sides exist for display only and so cannot be cropped away. This
could happen if you manually resized the window after JoeView originally
displayed it.
ΓòÉΓòÉΓòÉ 2.3.5. Auto Cropping ΓòÉΓòÉΓòÉ
Auto cropping attempts to use a little bit of color comparisons to estimate
which parts of the picture need to be croppped.
Default This method looks at the color of the pixel in the lower left corner
of the image. It then compares all other colors on each side of the image to
this color. If one side's color all match this "magic" color, that side is
deleted. This method progresses until a new color is encountered.
Strict, Average, Loose, and Custom: All of these methods work on the same
underlying principle. A group of colors are identified and used to compare a
side of the image to. The group of "magic" colors will be taken from the lower
left side of the image unless a cropping rectangle has been selected, in which
case the "magic" colors are taken from there. A maximum of 10 colors will be
determined, only one will be used if a solid color area is input. A percentage
hit test is used to determine if a side of the image should be deleted. For
instance, if you have 3 "magic" colors and if half the pixels of the side being
examined have these colors a hit of 50% would be recorded. This hit percentage
is compared to the allowed value to determine whether or not to delete the
side. The Strict, Average, and Loose options correlate to a 95%, 85%, and 75%
hit rates. You can enter your own percentage using the Custom command.
Note: If nothing seems to be happening, you might be using too tight a
percentage, but it also might be too loose. If the percentage is way too
loose, too much of the picture gets cropped and JoeView assumes that this isn't
what is desired and so does no cropping.
ΓòÉΓòÉΓòÉ 2.3.6. Smooth ΓòÉΓòÉΓòÉ
With Use 9 Points selected, this does a smoothing of the image by taking a
given pixel and then all of its neighbors, giving 9 total pixels. Depending on
the weighting factor, the RGB components of these pixels are combined for a new
value for the given pixel. A weighting of 100 would mean that the given pixel
influences the created pixel the most, in fact to the exclusion of the
neighboring pixels so there is no effect. At the opposite extreme a weight of
0 means all the pixels get averaged in equally. This tends to blur the image
somewhat.
If 9 Points is not selected, 4 points are used. One point and three neighbors.
This tends to do a wave sort of smoothing. No weighting is used.
ΓòÉΓòÉΓòÉ 2.4. Manipulations ΓòÉΓòÉΓòÉ
This menu command does nothing but bring down another pull down menu. The
commands on that menu are used for changing or manipulating the current image.
Many have keyboard equivalents. All these commands can be undone by using
another command or the same command twice, i.e. using mirror twice.
ΓòÉΓòÉΓòÉ 2.4.1. Flip ΓòÉΓòÉΓòÉ
Depending on the option selected, the current image is flipped (mirrored)
either vertically or horizontally.
ΓòÉΓòÉΓòÉ 2.4.2. Rotate ΓòÉΓòÉΓòÉ
Rotation is either clockwise or counterclockwise. Rotation takes place in 90
degree increments. The easiest way to undo the affects of this command is to
pick up your monitor and rotate it 90 degrees in the opposite direction of the
way you started. But you didn't come all this way just to read that, did you?
ΓòÉΓòÉΓòÉ 2.4.3. Invert Colors ΓòÉΓòÉΓòÉ
The current image colors are inverted. For example, black becomes white, etc.
The effect is pretty interesting, just like taking large amounts of
hallucinogens but without the high cost.
ΓòÉΓòÉΓòÉ 2.4.4. Zooming ΓòÉΓòÉΓòÉ
Zooming allows the user to zoom in on a particular area of the image. That
area is first selected by using the left mouse button. After a zoom has been
performed, the menu option will change to include a Zoom Out option. The
original image is unaffected by zooming, as opposed to Cropping . You can
keep on zooming in to your hearts content, but Zooming Out goes all the back to
the original image.
ΓòÉΓòÉΓòÉ 2.5. Options ΓòÉΓòÉΓòÉ
This will bring up one of two possible menus depending on whether or not you
are currently running a SlideShow . The slideshow options can be looked at in
the Slide Show Options section. You check or fill in the various selections as
you see fit and then select the action you would like with one of the four
buttons on the botton of the dialog. For the conventional options menu there
is a notebook and four buttons at the bottom of the dialog. Those buttons are:
o Apply (Options become active, but are not saved)
o Save (Options saved but not applied)
o Cancel (duh!)
o Help (Very complicated button, will be explained in your senior year.)
ΓòÉΓòÉΓòÉ 2.5.1. Palette Options ΓòÉΓòÉΓòÉ
Three possible options are available regarding palettes.
First you can Overide System Colors This allows JoeView to cream the system
colors. These are the colors used for dialogs, menu text, etc. There are not
that many of them, you can figure out how many unique ones you have by looking
at the Image Information Dialog colors field. You will often see "got 245 out
of 256". Subtract the first number from 256 to get the number of system colors.
The colors that the application can't place are mapped into the closest ones
the system will display. Usually the increase in image quality is
insignificant, but you might use this option if you are not gonna look at other
applications while JoeView is running.
Next come Aggressive on Palette JoeView loves to fight for the colors it is
using. If another application starts changing the palette this option will
cause JoeView to try and change the colors back every now and then. If you are
working with another application it can get annoying having the colors flash
and the system will slow down somewhat.
You can use a hot key (Alt A) to cycle this on or off. When you do so JoeView
will beep a high tone when you turn it on, a low tone when it is off.
Even while Aggresive on Palette is off whenever you make JoeView the active
application the palette will become reset to the correct colors.
The above two options only affect how the image is displayed. The actual
colors that make up the image in memory are not affected by these choices.
Display Using System Palette actually changes the colors that make up the
image. The option will cause the image that is loaded to be diplayed using
only the colors that the system has in its default palette. The method used to
convert to the system colors is a Floyed Steinberg error diffusion which yields
pretty good quality and has the advantage is that JoeView will not affect other
applications by reseting their palettes. Also, mutlitple versions of JoeView
can be run and each one will not interfere with the others. Since this will
actually change the colors of the image (not just the displayed colors) so
don't use this to read and then save files if you want a true conversion.
ΓòÉΓòÉΓòÉ 2.5.2. Display Options (Window Sizing) ΓòÉΓòÉΓòÉ
These are options which apply to how the images are displayed.
Images can be shown so that the window is scaled to reflect the size of the
image each time it is loaded - this would mean making Fixed Window Size
unchecked. With Fixed Window Size on, the window will not resize when a new
image is loaded.
Scale, keep true perspective means the width to height ratio remains constant.
The image gets padded with black if the image will not correctly fit into the
display window. With Scale perspective can change you can stretch the image
to fit the window.
ΓòÉΓòÉΓòÉ 2.5.3. Dithering/Quantizing Options ΓòÉΓòÉΓòÉ
Actually, this should be called just quantizing, but I can't spell that. These
are the different ways that a 24 bit image will be converted down to 8 bits so
that it can be displayed. These do not apply to JPEG, which has its own
options. These are used on Targas, PBMs, and other formats that might contain
24 bit images. The quickest dithering routine is used when smoothing.
o Gray The fastest way. Converts image to grayscale. Good for previewing new
pictures.
o Quick The fastest color way. Not too bad but some image degradations might
occur. Use this one most of the time and you'll be OK. The others (below)
are better but much slower.
o Best Good compromise between speed and quality. Some mild (Floyd Steinberg)
dithering is used. Code based on code by Jef Poskanzer (ppmquant.c - quantize
colors).
o Slow This implements Heckbert's Median Cut algorithm. The code is hacked
from XV by John Bradley of The University of Pennsylvania. Quality in line
with Best. This does a full dither and is quite slow but provides the best
results. This is especially true when viewing true 24 bit images (meaning way
over 256 colors), this will give you the best conversion down to 8 bit,
especially when there are a lot of subtle shade changes. I have hit and miss
luck with it. BTW, this is a little memory intensive and slow. If you
abandon a file read it may not return control immediately to JoeView
Quantizing (reducing down to 256 colors) isn't always needed and it is much
faster to not have to run a quantizing algorithm. You have the ability to
specify whether the image data should be checked to see if it contains more
than 256 colors. If the images you will be looking at will mostly/always have
more than 256 colors you should not do the checking as it will be a waste of
time. If the images are almost always 256 colors or less then doing the check
will save some time.
ΓòÉΓòÉΓòÉ 2.5.4. Directories Option ΓòÉΓòÉΓòÉ
Where would you like to start looking for images? Leave blank to start in
current directory.
For a detailed description of what Quick Directories do see Quick Dir. In this
notebook page you type the desired directory into the entry field and then hit
the add button. Similarly, select the directory you want to remove and hit the
del button to remove that information.
For both of these option, JoeView will verify the information is valid before
exiting the dialog. If there is a problem you will get an error message and
have to fix the problem before you can exit.
ΓòÉΓòÉΓòÉ 2.5.5. Open Options ΓòÉΓòÉΓòÉ
The majority of these settings are described in Open Dialog.
The major option not covered there is the File Mask. This is the value that
will be loaded into the File Open Dialog File Mask upon startup. Wild cards
are valid and you can separate groups by either a space or a ;, for example
*.bmp;*.gif;*.jpg or *.bmp *.gif *.jpg are both valid. There is a slight speed
penalty for each additional group.
ΓòÉΓòÉΓòÉ 2.5.6. Swapper Option ΓòÉΓòÉΓòÉ
Swapper Check is two parts, a check box and a drive entry field. This was
added in Version 1.22. When you have checked the check box and you have put a
valid drive in the drive box (just the letter, no colon) this option becomes
active. The drive should be whatever drive your swapper.dat file is on. What
this does is that whenever JoeView is going to allocate a large chunk of memory
(defined as 1 Meg or more) it will query the drive you have indicated for
available space. If the available space does not exceed the amount of memory
requested by at least 4 Megs, then JoeView will give a warning message and the
opportunity to terminate. The feature is a preventative step to make sure you
don't run out of disk space (swap space). The speed impact is quite small and
it could really save your butt if you get some stupid tiff file that looks
pretty small but in reality is 10,000 X 10,000. Take a test drive by making
the drive one of your floppies and then reading in a large full color pbm file.
ΓòÉΓòÉΓòÉ 2.5.7. Misc Options ΓòÉΓòÉΓòÉ
Show Load Progress shows the current status of file loading, basically a
percentage of image loaded. Shown in the window title bar. Some File formats
may not show this. When dithering (quantizing) takes place, messages to that
affect will be displayed in the Title Bar.
Show Image Info on Startup will start the image info dialog upon startup (what
else did you expect?). See see Image Infomation.
ΓòÉΓòÉΓòÉ 2.6. Image Information ΓòÉΓòÉΓòÉ
This command brings up a window that shows information about the currently
displayed image. The information consists of:
o The Filename
o Format of the image file and filesize
o Resolution of the image in memory
o Resolution of the image as displayed
o Distortion and scale of the image (Dist. and Scale)
o Color information
o An unseen line that occasionally will show warning messages
o A history list box of manipulations that have been performed on the current
image.
The Information Box will remain around as long as JoeView is alive or until the
Hide button is pressed.
The information categories are pretty self explanatory, but for clarity
Resolution refers to the resolution of the image as it is currently stored in
memory, while Display Res. is the resolution that the image is currently being
displayed at.
The Dist. and Scale category may not be obvious. The distortion is the ratio
of the aspect ratio of the image as it is displayed divided by the aspect ratio
of the image in memory. Take that number and subtract one from it if it is
greater than one or if it is less than one invert it and make it negative and
then add one. We will call the aspect ratio the width of the image divided by
its height. So a distortion of 0 means the image is not being distorted, a
positive value means your are crushing the top down and a negative value means
you are squishing the sides in.
Scale is the scale factor of memory versus display. 2 means the display image
is twice as large as the memory image. When you are distorting the image, the
largest scale (width or height) is displayed.
ΓòÉΓòÉΓòÉ 3. Some Hints ΓòÉΓòÉΓòÉ
No, the hints aren't here, go in one more level.
ΓòÉΓòÉΓòÉ 3.1. Viewing Strategies ΓòÉΓòÉΓòÉ
Images are displayed in several ways. Two ways that are always available are 1)
just a simple, correctly scaled image and 2) an image that starts out scaled,
but if you resize the window the aspect ratio will change so that the picture
always fills up the window. These two types of display can be modified
somewhat by selecting the fixed window size attribute. This option will force
JoeView to not resize the viewing window each time a new file is loaded
(whether by SlideShow or by File -> Open). The user can resize the window at
any time.
The SlideShow offers two addition ways of displaying images. See SlideShow for
more information. In no case however, are sliders ever used.
The most important thing to remember when using JoeView is that the actual
resolution of the image (the width x height) is not always the same as that
which it is displayed with. For example, let's say you are working on a system
that is limited to a display of 640 by 480 and you try and load an image that
is 2000 by 2000. JoeView will resize the image to fit the screen when it
displays the image to you, but the data representing the image will stay at
2000 by 2000. Any operations (manipulations) that you perform on the image
will by done on the original image, the 2000 by 2000 one. Now, let's say you
use the ReSize command to reduce the image to 640 by 480. From as far as you
can tell, nothing will have changed. This is because the image size is still
as big as the display can handle. In reality you have changed the image size
and if you save the image it will be different than the one you originally
loaded. The Image Information option on the main menu will keep you apprised
of the actual vs displayed resolution of the current image. When you save a
file there is the option to save at the currently displayed size, the above
discussion is why that option exists.
ΓòÉΓòÉΓòÉ 3.2. Quick Dir ΓòÉΓòÉΓòÉ
An especially useful feature, the Quick Dir listbox is present in several
different dialogs:
o File Open
o Slide Show
o File Save
o Options
It is only in the Options dialog the Quick Dir listbox can be modified. Aside
from modifying the Quick Dir listbox, the Options dialog is not affected by it.
The format for an entry is to have a drive letter and full path
For Example c:\images\gif, there should not be any trailing slashes. There is
a limit of 10 entries that will be remembered. Others will be ignored. Unused
entries should consist of blanks.
The basic use of the Quick Dir is to allow the user to quickly access
frequently used directories. The actual use of the Quick Dir listbox varies
somewhat depending on the dialog. In the File Open and Slide Show dialogs Quick
Dir is accessed by using the pull down on the listbox. Doing so will cause the
current directory and drive to change to that selected in Quick Dir. With the
File Save dialog, invoking Quick Dir is the same, but instead of actually
changing the drive and directory, just the entry in the name of the file to be
saved will be updated. If you want to change directories in the File Save
dialog you will have to use the drive and directory listboxes.
ΓòÉΓòÉΓòÉ 4. File Formats ΓòÉΓòÉΓòÉ
A variety of file formats are supported. See each individual one for more
info.
You should be aware of some limitations when doing conversions between
different file formats or if you are constantly reading and saving the same
image over and over again (See JPEG). When JoeView reads a file, no matter
what the original format, it is stored as an 8 bit image (256 colors max). This
means that if you read in a JPEG, TARGA, Sun Raster, or PPM image there exists
the possibility that the original file is made up of more than 256 colors and
so JoeView will reduce the colors down to 256. So, if your goal is to convert
a 24 bit image stored in TARGA format to PPM there is a very good chance that
your image will suffer a loss in quality. There are utilities available to do
true 24 bit conversions if you are really concerned. Most likely the losses
will be quite small.
Eight bit formats will not suffer any degradation.
ΓòÉΓòÉΓòÉ 4.1. JPEG ΓòÉΓòÉΓòÉ
The JPEG reading and writing code is based on the following people's work:
The Independent JPEG Group's JPEG software
==========================================
This software is the work of Tom Lane, Philip Gladstone, Luis Ortiz,
Lee Crocker, Ge' Weijers, and other members of the Independent JPEG Group.
LEGAL ISSUES
============
The authors make NO WARRANTY or representation, either express or implied,
with respect to this software, its quality, accuracy, merchantability, or
fitness for a particular purpose. This software is provided "AS IS", and you,
its user, assume the entire risk as to its quality and accuracy.
This software is copyright (C) 1991, 1992, Thomas G. Lane.
All Rights Reserved except as specified below.
Permission is hereby granted to use, copy, modify, and distribute this
software (or portions thereof) for any purpose, without fee, subject to these
conditions:
(1) If any part of the source code for this software is distributed, then this
README file must be included, with this copyright and no-warranty notice
unaltered; and any additions, deletions, or changes to the original files
must be clearly indicated in accompanying documentation.
(2) If only executable code is distributed, then the accompanying
documentation must state that "this software is based in part on the work of
the Independent JPEG Group".
(3) Permission for use of this software is granted only if the user accepts
full responsibility for any undesirable consequences; the authors accept
NO LIABILITY for damages of any kind.
Permission is NOT granted for the use of any IJG author's name or company name
in advertising or publicity relating to this software or products derived from
it. This software may be referred to only as "the Independent JPEG Group's
software".
We specifically permit and encourage the use of this software as the basis of
commercial products, provided that all warranty or liability claims are
assumed by the product vendor.
==================
The following is pretty much stolen verbatim for the JPEG information that is
supplied with the JPEG libraries.
The Quality spin button lets you trade off compressed file size against the
quality of the saved image: the higher the quality setting, the larger the JPEG
file, and the closer the output image will be to the original input. Normally
you want to use the lowest quality setting (smallest file) that decompresses
into something visually indistinguishable from the original image. For this
purpose the quality setting should be between 50 and 95; the default of 75 is
often about right. If you see defects at quality 75, then go up 5 or 10 counts
at a time until you are happy with the output image. (The optimal setting will
vary from one image to another.) Quality 100 will generate a quantization table
of all 1's, eliminating loss in the quantization step (but there is still
information loss in subsampling, as well as roundoff error). This setting is
mainly of interest for experimental purposes. Quality values above about 95
are NOT recommended for normal use; the compressed file size goes up
dramatically for hardly any gain in output image quality. In the other
direction, quality values below 50 will produce very small files of low image
quality. Settings around 5 to 10 might be useful in preparing an index of a
large image library, for example. Try quality 2 (or so) for some amusing
Cubist effects. (Note: quality values below about 25 generate 2-byte
quantization tables, which are considered optional in the JPEG standard. Some
commercial JPEG programs may be unable to decode the resulting file.)
Smooth Factor: Smooth the input image to eliminate dithering noise. The value
selected, ranging from 1 to 100, indicates the strength of smoothing. 0 will
mean to not use smoothing and can be used instead of the check button. The
Smooth option filters the currently displayed image to eliminate fine-scale
noise. This is often useful when saving files as JPEG: a moderate smoothing
factor of 10 to 50 gets rid of dithering patterns in the input file, resulting
in a smaller JPEG file and a better-looking image. Too large a smoothing
factor will visibly blur the image, however.
Optimization of entropy encoding parameters. Without this, default encoding
parameters are used. Optimize usually makes the JPEG file a little smaller, but
JoeView runs somewhat slower and needs much more memory. Image quality and
speed of decompression are unaffected by optimize. It's also a win when you are
using low quality settings to make very small JPEG files; the percentage
improvement is often a lot more than it is on larger files.
When reading a JPEG, there are five mutually exclusive option that deals with
quantization of the colors (converting from a 24 to 8 bit image). Your options
are:
o Quick The one pass color quantization. The fastest of the color
quantizings, but probably will result in a noticeably inferior image. Good
for a quick look.
o Slow This implements Heckbert's Median Cut algorithm. The code is hacked
from XV by John Bradley of The University of Pennsylvania. Quality in line
with Best. Very slow compared to the builtin JPEG quantizer. For most jpegs
it will probably give only minor quality improvements. Make your own
judgment. It is not part of the regular JPEG libraries.
o Best Floyd-Steinberg dithering is used. Based on ppmquant.c by Jef
Poskanzer.
o BuiltIn Uses the JPEG libraries built in two pass quantizer. Probably the
best to use overall. Seems pretty fast.
o Gray Hands down the fastest way to look at a JPEG. Results in gray colors
only, but good way to take a quick look.
ΓòÉΓòÉΓòÉ 4.2. Bitmaps ΓòÉΓòÉΓòÉ
The two important types of bitmaps supported are Windows and OS2 style bitmaps.
JoeView should read any of these type of bitmaps (RLE and non-RLE) with the
following caveats:
o Black and White images that are stored by using modified Huffman encoding
cannot be read.
o OS2 allows the use of halftones and such. JoeView does not read these but I
have never even seen one.
o Should read 24 bit bitmaps OK.
Bitmaps can be saved in either RLE on uncompressed format. The RLE encoding
scheme is fairly brain dead and will actually increase the size of the file for
"real life" images with more than 16 colors. JoeView does some comparing and
will minimize the file size to its best ability so you should only see slight
increases in file size but then again you may see a significant decrease. You
pay your money and you takes your chances.
ΓòÉΓòÉΓòÉ 4.3. GIF ΓòÉΓòÉΓòÉ
Does em'.
JoeView will read both GIF87a and GIF89a formats but will write only GIF87a
format. If a mulit-image gif file is encountered you will have the option of
breaking the images apart and creating a sequence of OS2 bitmaps from them or
just reading the first image.
"The Graphics Interchange Format(c) is the Copyright property of
CompuServe Incorporated. GIF(sm) is a Service Mark property of
CompuServe Incorporated."
ΓòÉΓòÉΓòÉ 4.4. TARGA ΓòÉΓòÉΓòÉ
The code to read Targa images is based on tgatoppm.c by Jef Poskanzer. This is
the copyright stuff from that file.
/* tgatoppm.c - read a TrueVision Targa file and write a portable pixmap
**
** Partially based on tga2rast, version 1.0, by Ian MacPhedran.
**
** Copyright (C) 1989 by Jef Poskanzer.
**
** Permission to use, copy, modify, and distribute this software and its
** documentation for any purpose and without fee is hereby granted, provided
** that the above copyright notice appear in all copies and that both that
** copyright notice and this permission notice appear in supporting
** documentation. This software is provided "as is" without express or
** implied warranty.
JoeView does both RLE and non-RLE style files. BTW, I have significantly
changed the code, hopefully for the better.
ΓòÉΓòÉΓòÉ 4.5. PBM ΓòÉΓòÉΓòÉ
The code for reading and writing PBM files used to be based on code from XV. I
have since redone the code enough to believe that it is no longer a use of that
code. I have retained the following is copyright information from XV just to
be sure.
* Copyright 1989, 1990, 1991, 1992 by John Bradley and
* The University of Pennsylvania
*
* Permission to use, copy, and distribute for non-commercial purposes,
* is hereby granted without fee, providing that the above copyright
* notice appear in all copies and that both the copyright notice and this
* permission notice appear in supporting documentation.
*
* The software may be modified for your own purposes, but modified versions
* may not be distributed.
*
* This software is provided "as is" without any expressed or implied warranty.
*
* The author may be contacted via:
* US Mail: John Bradley
* GRASP Lab, Room 301C
* 3401 Walnut St.
* Philadelphia, PA 19104
*
* Phone: (215) 898-8813
* EMail: bradley@cis.upenn.edu
*
JoeView uses the term PBM loosely, there are really three (or six) different
types of formats here. They are:
PGM - portable graymap file format
The portable graymap format is a lowest common denominator grayscale file
format. The definition is as follows:
- A "magic number" for identifying the file type. A pgm file's magic
number is the two characters "P2".
- Whitespace (blanks, TABs, CRs, LFs).
- A width, formatted as ASCII characters in decimal.
- Whitespace.
- A height, again in ASCII decimal.
- Whitespace.
- The maximum gray value, again in ASCII decimal.
- Whitespace.
- Width * height gray values, each in ASCII decimal, between 0 and the
specified maximum value, separated by whitespace, starting at the top-
left corner of the graymap, proceding in normal English reading order.
A value of 0 means black, and the maximum value means white.
- Characters from a "#" to the next end-of-line are ignored (comments).
- No line should be longer than 70 characters.
Here is an example of a small graymap in this format:
P2
# feep.pgm
24 7
15
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 3 3 3 3 0 0 7 7 7 7 0 0 11 11 11 11 0 0 15 15 15 15 0
0 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 15 0 0 15 0
0 3 3 3 0 0 0 7 7 7 0 0 0 11 11 11 0 0 0 15 15 15 15 0
0 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 15 0 0 0 0
0 3 0 0 0 0 0 7 7 7 7 0 0 11 11 11 11 0 0 15 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
There is also a variant on the format, the RAW style.
This variant is different in the following ways:
- The "magic number" is "P5" instead of "P2".
- The gray values are stored as plain bytes, instead of ASCII decimal.
- No whitespace is allowed in the grays section, and only a single
character of whitespace (typically a newline) is allowed after the
maxval.
- The files are smaller and many times faster to read and write.
Note that this raw format can only be used for maxvals less than or equal
to 255.
PBM - portable bitmap file format
The portable bitmap format is a lowest common denominator monochrome file
format. It was originally designed to make it reasonable to mail bitmaps
between different types of machines using the typical stupid network
mailers we have today. Now it serves as the common language of a large
family of bitmap conversion filters. The definition is as follows:
- A "magic number" for identifying the file type. A pbm file's magic
number is the two characters "P1".
- Whitespace (blanks, TABs, CRs, LFs).
- A width, formatted as ASCII characters in decimal.
- Whitespace.
- A height, again in ASCII decimal.
- Whitespace.
- Width * height bits, each either '1' or '0', starting at the top-left
corner of the bitmap, proceding in normal English reading order.
- The character '1' means black, '0' means white.
- Whitespace in the bits section is ignored.
- Characters from a "#" to the next end-of-line are ignored (comments).
- No line should be longer than 70 characters.
Here is an example of a small bitmap in this format:
P1
# feep.pbm
24 7
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0
0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0
0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0
0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0
0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
There is also a variant on the format, the RAW style.
This variant is different in the following ways:
- The "magic number" is "P4" instead of "P1".
- The bits are stored eight per byte, high bit first low bit last.
- No whitespace is allowed in the bits section, and only a single
character of whitespace (typically a newline) is allowed after the
height.
- The files are eight times smaller and many times faster to read and
write.
PPM - portable pixmap file format
The portable pixmap format is a lowest common denominator color image
file format. The definition is as follows:
- A "magic number" for identifying the file type. A ppm file's magic
number is the two characters "P3".
- Whitespace (blanks, TABs, CRs, LFs).
- A width, formatted as ASCII characters in decimal.
- Whitespace.
- A height, again in ASCII decimal.
- Whitespace.
- The maximum color-component value, again in ASCII decimal.
- Whitespace.
- Width * height pixels, each three ASCII decimal values between 0 and
the specified maximum value, starting at the top-left corner of the
pixmap, proceding in normal English reading order. The three values
for each pixel represent red, green, and blue, respectively; a value of
0 means that color is off, and the maximum value means that color is
maxxed out.
- Characters from a "#" to the next end-of-line are ignored (comments).
- No line should be longer than 70 characters.
Here is an example of a small pixmap in this format:
P3
# feep.ppm
4 4
15
0 0 0 0 0 0 0 0 0 15 0 15
0 0 0 0 15 7 0 0 0 0 0 0
0 0 0 0 0 0 0 15 7 0 0 0
15 0 15 0 0 0 0 0 0 0 0 0
There is also a variant on the format, the RAW style.
This variant is different in the following ways:
- The "magic number" is "P6" instead of "P3".
- The pixel values are stored as plain bytes, instead of ASCII decimal.
- Whitespace is not allowed in the pixels area, and only a single
character of whitespace (typically a newline) is allowed after the
maxval.
- The files are smaller and many times faster to read and write.
Note that this raw format can only be used for maxvals less than or equal
to 255.
The above three descriptions are very slightly altered versions of descriptions
originally written and Copyrighted (C) 1989, 1991 by Jef Poskanzer.
So, if you need to input a file format that JoeView does not support, here is
your chance if you know the format of the data you already have. Convert the
data into the appropriate ASCII format style above. It is probably simplest
just to use the ppm format and let JoeView convert it down into the appropriate
number of colors.
ΓòÉΓòÉΓòÉ 4.6. X11 Bitmap ΓòÉΓòÉΓòÉ
The code for reading and writing X11 bitmaps was hacked from XV, see the PBM
section for copyright info.
ΓòÉΓòÉΓòÉ 4.7. Sun Raster ΓòÉΓòÉΓòÉ
The code for reading and writing Sun Raster files was stolen from XV, see the
PBM section for copyright info. This particular code from XV was written by
Dave Heath (heath@cs.jhu.edu) with additions by Ken Rossman
(ken@shibuya.cc.columbia.edu).
ΓòÉΓòÉΓòÉ 4.8. PCX ΓòÉΓòÉΓòÉ
The code for reading and writing PCX files is taken from Michael Davidson. I
have made significant changes, including the ability to handle 24 bit images.
This should handle up to version 5 PCX.
ΓòÉΓòÉΓòÉ 4.9. TIFF ΓòÉΓòÉΓòÉ
The code for reading and writting TIFFs is based on code written by Sam
Leffler. Here is his copyright notice.
/*
* Copyright (c) 1991, 1992 Sam Leffler
* Copyright (c) 1991, 1992 Silicon Graphics, Inc.
*
* Permission to use, copy, modify, distribute, and sell this software and
* its documentation for any purpose is hereby granted without fee, provided
* that (i) the above copyright notices and this permission notice appear in
* all copies of the software and related documentation, and (ii) the names of
* Sam Leffler and Silicon Graphics may not be used in any advertising or
* publicity relating to the software without the specific, prior written
* permission of Sam Leffler and Silicon Graphics.
*
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
*
* IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
* OF THIS SOFTWARE.
*/
When you save a TIFF file, there are five choices for the type of TIFF file to
stored. Not exactly sure what each of the types is except that the FAX choices
will be reduced to black and white images first.
Understand that the TIFF spec is disgustingly huge and I will not even begin to
think about getting in to it in detail. If your TIFF files are not displaying
correctly, well tough tiff, it is beyond my capabilities to go in and mess with
the library supplied by Sam Leffler.
ΓòÉΓòÉΓòÉ 4.10. Utah RLE ΓòÉΓòÉΓòÉ
JoeView only reads Utah RLE files, it will not write them. The code for
reading Utah RLE files is based on code from XV, see the PBM section for
copyright info.
ΓòÉΓòÉΓòÉ 4.11. MetaFiles ΓòÉΓòÉΓòÉ
JoeView will only read MetaFiles, it will not write them. Meta files are
actually a series of drawing commands and so you can imagine how big a file
would be if every command was to draw a single point at some color. JoeView
will size the MetaFile to display onto the screen and then create a raster
version of it. Right now you cannot stop a MetaFile from playing once it has
started.
ΓòÉΓòÉΓòÉ 4.12. Slide Show Files ΓòÉΓòÉΓòÉ
JoeView can store a selection of files for use in a Slide Show. These
typically are given and extension of sls. You can load these files using the
Slide Show Dialog or the regular File Open Dialog. In addition, you can drag
and drop such a file onto JoeView.
As of version 1.22, the files created will contain the slide show settings in
effect when the file was created.
ΓòÉΓòÉΓòÉ 5. Key Help ΓòÉΓòÉΓòÉ
There are keyboard equivalents to many of the pull down menu commands. Most
are single character commands and will be shown on the menu underlined. They
are only valid when the main window is active. They are:
Ctrl+O or O Open a file
S Save a file
Z Zoom in or out
B Brighten Image
D Darken Image
G Grayscale image
C Crop the image
A Auto crop the image using Average parameter
I Image information window
Ctrl+I Iconfy the file
H Help table of contents
K This window
M Move the window using arrow keys, good in No TitleBar mode
N Next image when in slide show mode
Ctrl+N Open File dialog next image
Ctrl+P Open File dialog previous image
Alt+P Print Image
+ Increase image size by 10%
- Decrease image size by 10%
R Refresh image
T Toggle Title Bar on and off
Ctrl+R Rotate image Clockwise
Alt+R Rotate image CounterClockwise
Ctrl+F Flip image Vertically
Alt+F Flip image Horizontally
Alt+O Options Dialog
Ctrl+S Slide Show Dialog
Space Bar Minimize JoeView (someone's coming)
Alt+C Main Colors manipulations dialog
Aggessive Palette can be toggled using Alt+A. There will be a beep.
Alt+F4 Quit
Number keys 2 - 4 will size the image by that number. 2 doubles, etc...
Shift Number keys 2 - 4 will divide image size by that number. 2 halves,
etc...
The Open File dialog has the following keyboard equivalents, they are active
only when the Open File dialog is active. They are:
Ctrl+N Show next image
Ctrl+P Show previous image
Space Bar Minimize JoeView
ΓòÉΓòÉΓòÉ 6. A Few Thanks ΓòÉΓòÉΓòÉ
The following people were kind enough to answer questions I posted to the net.
The few minutes they took to respond to my questions saved me untold days of
fruitless searching through .inf files. I hope these words make a contribution
towards their 15 minutes of fame.
o Keith Murray
o Jeroen Hoppenbrouwers
o Gene Mangum
o Roman Fischer
o Anders Bjurman
This is of course in addition to the people who have made their source code
available for use by others. This would be the JPEG, PBM, and XV authors who
are listed in the respective file formats sections.
The following people have made significant suggestions for improvement of
JoeView and/or pointed out bugs. You may have made suggestions or comments but
are not listed here. Typically I caught the bug before you notified me or
something along those lines. If you really want on this list, SEND MONEY.
o Dan, Dick, Tom, Chance Glazing Donuts instead of working.
o Steve M. Lacy Creation of FS Dithered bitmaps for wallpaper use.
o Scott Hiles Create Slide Show files, Toggle Title Bar, Drag Drop Slide Show
Files
o Rob Eitzen Can't access A/B drives, bug fix
o Scott Harper Found lots of little bugs, good style criticisms, bitmap file
problems, ghost cropping rectangle (fix)
o Reinhard Meyer Found truly obscure bugs, other suggestions
ΓòÉΓòÉΓòÉ 7. <-Registering JoeView-> ΓòÉΓòÉΓòÉ
You are required to register JoeView if you wish to use it after an evaluation
period of 20 uses. This means that you can start the JoeView program a total
of 20 times, after which you are obligated to register it. There is no time
constraint for this. To register JoeView you (the user) send me (the author)
money, gold, chinese food, Claudia Schiffer's home phone number, or any
combination of these items. I (me) then send you (you) one of two passwords.
The password is according to this scale:
o You send me less than $27.82 (US money bub) and I will give you a password
that will work on all 1.22 versions of JoeView - this means all bug fixes,
etc.
o You send me more than $27.82 (also US dinero) and I will give you a password
that will work on JoeView 1.22 and I will forward new passwords to you as
needed, free of charge for all future versions. This assumes that demand is
great enough to warrant me writing the next version of JoeView - next big
thing is 24 bit display.
Now you bright types notice I didn't say what happens when you send me exactly
$27.82. Well, do ya feel lucky PUNK, just try it and see.
The above is for a single user. The agreement is (in theory) that you can
create as many passworded versions of JoeView as you wish, but only one of
these copies can be in use at any given time (this is the book description used
by Borland and others).
Any company or government use of JoeView will follow the below registration
costs:
o Groups registration of 4 or less people:
- For 1.22 version only $20 US for each person.
- For lifetime password $30 US for each person.
o Group registration of 5 to 10 people:
- For 1.22 version only $50 + $10 US per person (5 people = $100, 6 = $110,
etc)
- For lifetime password $100 + $11 US per person
o Site license:
- 1.22 version only $279.
- Lifetime password on an individually negotiated basis.
Payment can take the form of cash or check, send it to:
Crunch Products
P.O. Box 370353
San Diego, CA 92137-0353
The checks can be made out to Joe Burkley or Crunch Products.
Have an interesting idea for a new program? Let's talk, I'm always interested
in considering new ideas. Contact me at the above address and we can talk.
ΓòÉΓòÉΓòÉ 8. Drag and Drop ΓòÉΓòÉΓòÉ
JoeView supports the dragging and dropping of an image file or slideshow file
onto either the JoeView Icon or onto a running version of JoeView. JoeView
will not accept drag and drop operations while a Slide Show is running or while
a file is currently being read. If you drag and drop multiple files at one
time, the files will be loaded into a slide show and started with whatever
defaults are currently selected as slide show options.
ΓòÉΓòÉΓòÉ 9. Command Line ΓòÉΓòÉΓòÉ
There are two possible command line options. You can specify a file name for
JoeView to load upon startup.
For example: joeview c:\gifs\hooters.gif
The other command line option is to create a Floyd Steinberg Dithered bitmap.
The main purpose of this option is so that you can create background images for
your desktop or lockup screens. When you received this copy of JoeView, one of
the files included should have been a REXX script to randomly generate
background images using this command line option. The format of the command is
joeview -b input_file output_file or joeview -bs input_file output_file. You
should specify drives and paths for the input and output files. The input file
can be in any file format the JoeView normally reads. The output file will
always be an OS2 2.0 format bitmap. The "-b" option causes JoeView to perform
the dithering at full CPU utilization. As the process is very CPU intensive,
the "-bs" option is included. This option is meant to mean -b slow. Basically
it puts JoeView in a low priority mode that causes the operation to take
considerably longer than if you use "-b" but you'll find that your machine is
much more useful while the process is running. JoeView will not be visible when
this option is invoked.
The idea of using FS Dithering to create background bitmaps was originally
proposed by Steve M. Lacy.
ΓòÉΓòÉΓòÉ 10. Blue Screen ΓòÉΓòÉΓòÉ
If'n your startup image in JoeView is a blue screen, your JoeView.ini file has
been corrupted. Delete it and JoeView will create another.
ΓòÉΓòÉΓòÉ 11. Thread Priorities ΓòÉΓòÉΓòÉ
OS2 has (for all practical purposes) 2 levels of thread priority, low(idle) and
regular. There seems to be a limit on the number of low priority threads that
can be active at once. Many applications (CPU meters, clocks, etc.) use low
priority threads. Along comes JoeView and it wants to use one. Well OS2 will
give JoeView a low priority thread, but OS2 doesn't want to devote any CPU
cycles to that thread. The net effect is that nothing happens as far as
JoeView processing is concerned. Another possibility is that Dos Boxes and
certain other OS2 programs will cause OS2 to not give any CPU time to low
priority threads. If you have many applications running (or Dos programs) and
you try something with JoeView and nothing seems to happen, try regular
priority threads instead. Most of the time with JoeView you can use a check
box to specify whether a command should occur at low or regular priority or you
can use a menu selection to alter the priority. Some commands might start out
at low priority. These commands can be upgraded to regular priority by using a
menu command. I think I have changed all commands to start out at regular
priority, but earlier version of JoeView were not this way and I may have
missed some.
For saving of files, I have brazenly stolen an idea I saw mentioned in pmview,
which is to bump the priority of these threads if JoeView doesn't detect
activity for 3 seconds. This only occurs for saving. SlideShows, File Reads,
dithering, etc. priorities can be changed while the command is running so I
leave it up to you to decide how you want them to go.
BTW, one way to see this type of activity is to have a file read occuring at
low priority and while it is reading open or make active an application that
runs in a Dos Box. Or run the SlideShow in low priority and open a Dos
program.
ΓòÉΓòÉΓòÉ 12. Installation & Setup ΓòÉΓòÉΓòÉ
You should have seen this in the readme file included with your distribution of
JoeView.
I have used the philosophy that JoeView will impact your OS2 system with as
little change as possible so that if you ever decide to get rid of JoeView,
perish the thought, all you will need to do is delete the files in one
directory.
JoeView can be used as you got it without any system (config.sys)
modifications. For best results you should put the JoeView files in a directory
that is included in your path statement. JoeView does sometimes create
temporary files and because of this it looks to see if you have either a TMP or
TEMP environental variable set in your config.sys. Lots of application use
these so you probably have them defined. If not, you can add one by entering
SET TMP=c:\os2\tmp or whatever directory you want your temp files stored in.
This keeps your system nice and clean so that you don't get random files
popping up all over the place.
The last installation option is of most importance to people working in a
network environment. You can put an environment variable called JOEVIEWINI
that points to a drive and directory where you want the JoeView.ini file to be.
This is also the place where the palette file (described below) and other
JoeView (permanent) files will be placed. If this variable is not present in
your config.sys, these files get placed in the same directory as JoeView.exe is
located. The main benefit of this option is that people running on a network
can have one of JoeView (exe and help) located on a common drive with each
personal .ini files on each person's machine. In your config.sys this would
look like SET JOEVIEWINI=C:\IMAGES.
Thats about the only change to your system that you can make regarding JoeView.
When you run JoeView the first time, two files will be created. The first is
joeview.ini which contains information about your current configuration of
JoeView. The second file is joeview.pal which contains the colors used in your
default system setup. The pal file is important when you are converting images
to use the system colors. When you run JoeView for the first time (and create
the pal file) you should have your system setup color-wise in the way you will
be using it. This means that no other palette changing programs should be
running at the time.
Other files included with JoeView are the help file and several script and REXX
example files. In addition, certain functions may create files. These will
always have a name similar to JoeView.
ΓòÉΓòÉΓòÉ 13. Copyright ΓòÉΓòÉΓòÉ
The author makes NO WARRANTY or representation, either expressed or implied,
with respect to JoeView, its quality, accuracy, merchantability, or fitness for
a particular purpose. This software is provided "AS IS", and you, its user,
assume the entire risk as to its quality and accuracy.
This software is copyright (C) 1992, 1993, V. Joseph Burkley. All Rights
Reserved except as specified below.
Permission is hereby granted to use, copy, and distribute this software (or
portions thereof) for any purpose, without fee, subject to these conditions:
(1) The three files, joeview.exe, joeview.hlp and the accompanying readme
(readme.jvw) files must always be included during distribution. Any
alterations to the files must be clearly documented. No changes may be made
to the About screen or any of the copyright information.
(2) Permission for use of this software is granted only if the user accepts
full responsibility for any undesirable consequences; the author accepts NO
LIABILITY for damages of any kind.
(3)Permission is NOT granted for the use of the author's name or company name
in advertising or publicity relating to this software or products derived from
it.
(4)Users are granted permission to collect fees for the distribution of
JoeView, (such as BBS's that have a membership fee or a downloading charge, or
FTP sites that sell cdrom versions of their archives) but users are
specifically prohibited from selling JoeView as a product or bundling JoeView
with other products that are then sold. It may be given away for free.
I encourage the free or at cost distribution of JoeView.
ΓòÉΓòÉΓòÉ 14. Scripts & REXX ΓòÉΓòÉΓòÉ
Any script file or REXX program can be loaded like a normal file. Either
command line, drag and drop, or using the JoeView open file dialog. The
script file must begin with the line
JoeScript
and no blank lines should exist. For a REXX file, the first line of the file
must begin with the /* sequence. For all commands (except the first line in a
script file) the command will be converted to lower case. Optional arguments
will not be case adjusted so you should treat them with care. For example, if
your script or REXX file has the line going to JoeView as:
Print Hello
JoeView would receive a line like:
print Hello
Play it safe and keep all commands as lower case. Type all arguments to be
exactly as you would like them. I did all this so that JoeView will work with
Unix type file systems where case does make a difference in file names.
Except for the print command, all passed numerical arguments need to be
integers (no decimal points). Remember integers!
Initial Settings: The following are the defaults, regardless of what you have
set in the JoeView options.
o Save at displayed size is off.
o When saving, image is saved in full color.
o Priorities are set to regular.
o Iconify on file save is set to off.
o Display using system palette is off.
o Display using aggressive palette is off.
otherwise, whatever defaults you have set in the options part of JoeView are
used. You can overide most of these settings by using script/REXX commands.
The commands that are unique to JoeView Script files are:
o open_start and open_finish These two commands bracket groups of files that
are to be operated on. It doesn't matter if the number of files is 1 or
1000, the names must be between the brackets with each name on its own line.
Wild cards are allowed and drives and paths should be included. For
example:
open_start
c:\images\*.gif
c:\stuff\*.jpg
c:\thisfile.bmp
open_finish
would set up for processing all the gifs in c:\images, all the jpg files in
c:\stuff and file c:\thisfile.bmp. This has loaded in a list of filenames.
These file en mass will only be affected by commands which are listed between
the begin & end statements.
o begin and end Any command can appear on a line, but if you want to do
operations on groups of files, the commands must be listed between begin and
end statements. For example, if you had previously loaded in a group of gif
file names, then:
begin
grayscale
end
would load a file, convert it to grayscale (no save) and then load in the next
file until all files had been processed. The number of commands between the
begin and end statements is (realistically) unlimited. Each command must be
on its own line without any blank lines.
o run_commands This command tells JoeView to begin using the commands defined
previously by use of the begin & end statements. The commands will be run
on all files that were loaded using the open_start and open_finish commands.
The commands that are unique to REXX files are:
o get_info This is used to query JoeView about the current state of the image
and the JoeView window. The RC variable that JoeView returns to the REXX
program will be a string with the format of:
Image Width, Image Height, number of colors, X Position of the frame window,
Y Position of the frame window, Width of the frame window, Height of the
frame window
The actual data is not separated by commas and would look something like:
300 456 200 310 466 10 50
The origin of the screen occurs at the lower left corner and is 0, 0. The
position of the frame window is relative to this coordinate. To receive
this information in the REXX program you would execute the get_info command
and then use:
PARSE VAR rc wide high colors position_x position_y window_width
window_height
RC(rc) is the variable REXX uses for passing info back and forth to JoeView.
You can use any variable names you like inplace of the ones in this example.
o get_filename Used in a simlar way to get_info, this will return the image's
filename in the rc variable.
The following commands can be used by either a JoeView script or by a REXX
program. Their execution is the same for both.
brighten number
Also darken number. Brighten or darken image by specified amount. number
can be from 0-255 and must be in integer form.
bw_dither
Dither the image to black and white.
crop left bottom right top
Crop the image to the specified coordinates. These are the "real" image
coordinates, not the displayed coordinates. 0,0 would be the lower left
corner of the image.
crop_regular
Aslo crop_average, crop_loose, crop_strict. Do autocropping.
crop_custom number
Do autocropping with the specified cropping value. number must be an
integer.
exit
This must exist outside of the begin & end pair of a Script file. It
functions just like stop, except JoeView will terminate instead of
returning control to the user like stop does.
flip_vertical
Also flip_horizontal. Flip image along the appropriate axis.
fixed_window_on & fixed_window_off
Display window will have or not have to stay at a fixed size turned on.
grayscale
Converts image to grayscale.
iconify & uniconify
Iconify the current image into whatever is the current file name. Or, with
uniconify, delete the icon information from the file.
iconify_on & iconify_off
Turns on or off the iconifying of a file when it is saved.
invert_colors
Invert image colors
jpeg_smooth number
Will turn jpeg file save smoothing on. number (an integer) indicates the
smoothing factor.
jpeg_smooth_on
Will turn on jpeg file save smoothing and use whatever the default
smoothing factor is.
jpeg_smooth_off
Turns off jpeg file save smoothing.
jpeg_optimize_off & jpeg_optimize_on
Turns on or off jpeg file save optimization.
jpeg_quality number
Jpeg file save quality, number is the quality and must be an integer,
between 50-100.
jpeg_quantize string
The method used to quantize (convert from 24 to 8 bits) the original jpeg
file when read in. string will be one of the following:
o quick -Use quick method
o slow -Use slow method - not recommended
o best -Use best method
o gray -Convert to grayscale
o builtin -Use builtin method, recommended
move_abs number_x number _y
Move the window to the absolute position indicated by the integers number_x
and number_y. The values are relative to the lower left corner of the
screen, which is 0, 0. The position on the window that this is in
reference to is the lower left corner. No checking takes place for whether
the window will be off screen.
move_rel number_x number _y
Move the window the number of pixels indicated relative to its current
position. number_x and number_y are integers and can be positive or
negative. No value testing is performed.
open_file string
This command will open whatever file is indicated in string. The argument
should ideally have a drive and path but this is not absolutely needed if
you know the directory JoeView is currently in.
pause number
Pause for indicated number of tenths of a second before going on to next
command. number must be an integer.
print many options
The printing allows you to specify almost everything you would normally
specify when using the print dialog. There are many options and they can
appear in many orders. The order can have an effect on how the image is
ultimately display. JoeView will come up with default image where the
image is centered and ready for the default printer. The options (some
required) are:
o image_width number Will specify the image width, in inches
o image_height number Will specify the image height, in inches
o left_margin number Will specify the left margin, in inches
o right_margin number Will specify the right margin, in inches
o top_margin number Will specify the top margin, in inches
o base_margin number Will specify the base margin, in inches
o center Center the image on the page.
o landscape_on Print image in landscape mode.
o landscape_off Print image in portrait mode.
o fixed_left Left margin is held fixed.
o fixed_right Right margin is held fixed.
o fixed_width Image width is held fixed.
o fixed_top Top margin is held fixed.
o fixed_base Base margin is held fixed.
o fixed_height Image Height is held fixed.
o set_printer name Choose a printer. Capitalization is important for the
name and only the first part of your printer name is important. For
example, if your printers are called "My Printer" and "Sekas Printer" you
should only use Sekas to select the second printer. Never put two
strings in for the printer name. Your default printer will be selected
initially.
o delay number Delay processing by the indicated number of seconds. Use
this to take a look at the printer dialog when you are trying to debug
your code. The maximum value is 30.
o print_it Print the image. This is mandatory, if this does not exists,
the print dialog will be cancelled.
priority_low & priority_regular
Set thread priority to low or regular.
priority_monitor
You should read the discussion of the use of priority which is located in
the main menu. If you execute a priority_monitor command, JoeView will
always monitor whether idle time threads (low priority threads) can
execute. If during a 3 second period they can't execute, then their
priority is increased to regular priority. For this option to work you
need to execute it first, then do a priority_low command. It is advisable
to always use this command when you are going to specify low priority
threads. If you are really sure you want low priority threads, all the
time, go ahead and leave it off. BTW, you can only turn this on, once on
it stays on.
quantize string
The method used to quantize (convert from 24 to 8 bits) when image file is
a non-jpeg 24 bit image (targa, pbm, etc). string will be one of the
following:
o quick -Use quick method
o slow -Use slow method - not recommended
o best -Use best method - recommended
o gray -Convert to grayscale
reduce_colors number
Reduces image to specified number of colors. number must be an integer
greater than 1.
resizex2
Also resize/2, resizex3, resize/3, resizex4 resize/4. Resize image by
appropriate factor, either multiply x or divided by /. resizex2 would
double the image, resize/2 would half the image, etc.
resize_640
Also resize_800 and resize_1024. Resize image to fit screen resolution
indicated.
resize_custom width height
Resize image to specified width and height. width and height must be
integers.
rotate_clockwise
Also rotate_countclockwise. Rotate image in the appropriate direction.
save_colors string
When doing a file save, save image in a specified color format. string is
the color format and must be:
o gray -Grayscale
o bw -Black and white
o color -Color
save_file string
Save the file. string is the file format and must be one of the following.
This does not change the image name extension, you must do that explicitly
with set_filename_extension, otherwise you will overwrite the original file
if you haven't changed directories or filenames.
o sun - Sun raster format
o pbm_ascii - PBM, PGM, PPM formats in ascii
o pbm_raw - PBM, PGM, PPM formats, raw
o x11 - X11 bitmaps
o tiff_none - TIFF with no compression
o tiff_packbits - TIFF with packbits compression
o tiff_lzw - TIFF with LZW compression
o tiff_fax3 - TIFF in fax 3 style
o tiff_fax4 - TIFF in fax 4 style
o gif - GIF format
o targa - TARGA format
o targa_rle - TARGA RLE format
o pcx - PCX format
o windoze - MS Windows bitmap
o os2 - OS2 2.0 bitmap
o windoze_rle - MS Windows bitmap, rle encoded
o os2_rle - OS2 2.0 bitmap, rle encoded
o jpeg - JPEG format
say_commands_on & say_commands_off
Will have JoeView show you the command it is about to execute. Used for
debugging a script or REXX file.
set_filename string
Changes the name of the current image to string. This will not change the
path or drive info.
set_filename_directory string
Will change the directory of the image, but will leave the image name
unchanged. You should include the drive.
set_filename_extension string
Will change the extension of the image, or assign one if it doesn't have
one. The extension string should include its own period. For example, If
the image was orginally c:\bigguns\test.gif,
set_filename_extension .jpeg
would change the file to c:\bigguns\test.jpeg
size_abs wide high
Size the display of the image to the indicated values. Note that this is
the displayed image, not the "real" image. wide and high are integers.
size_rel wide high
Adjust the size of the displayed image by the increment indicated. wide
and high are integers.
smooth_weighted number
Do a weighted smooth. number is the weighting factor, an integer from
0-100.
smooth_no_weight
Do a non weighted smooth.
stop
This must exist outside of the begin & end pair of a Script file. It stops
the Script or REXX program and returns control back to JoeView. It should
be the last command sent to JoeView. When you are using a REXX program, it
is slightly better to just have the REXX program do a normal exit and not
send the stop command.
system_colors_distance
Convert image to system colors using Distance Method.
system_colors_fsd
Convert image to system colors using Floyd Steinberg Dithering.
title_bar_toggle
Turn the title bar on if off or off if on.
visible & invisible
Hide or unhide the displayed image. Will also turn off the palette
realizing when invisible.
warnings_on & warnings_off
With warnings off, you will not be warned about problems except for those
relating to memory errors which generally signify a pretty big error. You
will not be warned if an unknown file format was read or if you are
overwriting a file.
zoom_in left bottom right top
Zoom in to the specified coordinates. These are the "real" image
coordinates, not the displayed coordinates. 0,0 would be the lower left
corner of the image.
zoom_out
Zoom back out.
Several example scripts are included. They are:
script1.exm This script takes whatever image was in JoeView before the script
is loaded and runs it through a variety of manipulations. Because of the
choice of manipulations, the original image will not be affected. Note that
the image's original filename will be lost.
script2.exm This script would read in all the files located in directory
c:\kermit\temp that have the extension .gif. It would iconify each of the
files, and save them as jpegs after first changing the extension to .jpg. The
jpeg save options would be whatever the defaults had been set to prior to
executing the script. After all the files have been gone through, the last
image has its colors inverted twice. Only the last image is affected because
the invert commands are outside the begin & end pair. If the the
set_filename_extension command had not been issued, the jpegs would have been
saved over the orginal gifs.